package com.citrus.retrofit; import com.citrus.sdk.Environment; import com.citrus.sdk.response.CitrusLogger; import com.squareup.okhttp.OkHttpClient; import retrofit.RestAdapter; import retrofit.client.OkClient; /** * Created by MANGESH KADAM on 5/7/2015. */ public class RetroFitClient { private static API RETROFIT_CLIENT; private static String CITRUS_ROOT = null; private static OkHttpClient okHttpClient = null; private static CitrusEndPoint citrusEndPoint; private RetroFitClient() {} public static API getCitrusRetroFitClient() { return RETROFIT_CLIENT; } public static void initRetroFitClient(Environment environment) { if (environment != null) { CITRUS_ROOT = environment.getBaseUrl(); } setupCitrusRetroFitClient(); } private static void setupCitrusRetroFitClient() { citrusEndPoint = new CitrusEndPoint(CITRUS_ROOT); okHttpClient = new OkHttpClient(); okHttpClient.setFollowRedirects(false); RestAdapter builder = new RestAdapter.Builder() .setEndpoint(citrusEndPoint) .setClient(new OkClient(okHttpClient)) .setLogLevel(CitrusLogger.isEnableLogs()?RestAdapter.LogLevel.FULL: RestAdapter.LogLevel.NONE) .build(); RETROFIT_CLIENT = builder.create(API.class); } public static API getBillGeneratorClient(String baseHost){ RestAdapter restAdapter = new RestAdapter.Builder() .setEndpoint(baseHost) .setClient(new OkClient(new OkHttpClient())) .setLogLevel(CitrusLogger.isEnableLogs()? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE) .build(); API billGeneratorClient = restAdapter.create(API.class); return billGeneratorClient; } public static API getCitrusBaseUrlClient(String baseHost){ RestAdapter restAdapter = new RestAdapter.Builder() .setEndpoint(baseHost) .setClient(new OkClient(new OkHttpClient())) .setLogLevel(CitrusLogger.isEnableLogs()? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE) .build(); API citrusBaseUrlClient = restAdapter.create(API.class); return citrusBaseUrlClient; } public static void setInterCeptor() { okHttpClient.interceptors().add(new ReceivedCookiesInterceptor()); } public static void removeInterCeptor() { okHttpClient.interceptors().clear(); } /* public static CitrusEndPoint getCitrusEndPoint() { return citrusEndPoint; }*/ public static void resetEndPoint() { citrusEndPoint.setUrl(CITRUS_ROOT); } public static void setEndPoint(String url) { citrusEndPoint.setUrl(url); } }